#ifndef _OBJECT_H_
#define _OBJECT_H_

#include <new>

namespace MySTL
{

class Object
{
public:
	virtual ~Object() = 0;

	void* operator new(size_t size) throw();
	void operator delete(void* p);
	void* operator new[](size_t size) throw();
	void operator delete[](void* p);

	void* operator new(size_t size, void* loc) throw();
	void operator delete(void* p, void*);
	void* operator new(size_t size, const std::nothrow_t&) throw();
	void operator delete(void* p, const std::nothrow_t&);

	bool operator ==(const Object& obj);
	bool operator !=(const Object& obj);
};

}

#endif